A. Field of the Invention
The present invention relates to network devices and, more specifically, to network devices for implementing network protocols that control data flow.
B. Description of Related Art
In digital communication systems, data is routinely transmitted over processing devices in a network. In packet-based networks, for example, data is transmitted in discrete quantities known as packets. A packet destined for a remote computer is typically transmitted through multiple intermediate network devices (e.g., through routers, switches, or bridges) before reaching its final destination. At each intermediate device, the intermediate network device may examine the packet and, based on the examination, determine the next network device (or hop) to which to transmit the packet.
Each intermediate network device runs one or more protocols that define how the device is to forward received packets. For example, the intermediate network device may assign the packet a high transmission priority, may apply quality of service rules to the packet, or perform error checking operations on the packet to ensure that the packet has not suffered transmission errors.
The protocols are often performed in the network devices by general purpose processors. In high performance network devices, such as high performance routers or switches, it can be difficult for these general purpose processors to keep up with the input data flow. Accordingly, specialized network processors, which may implement frequently used network operations in hardware, have been developed. These specialized processors may be optimized for protocol processing.
One function which may be performed by specialized processors is data flow control. Flow control refers to the management of data flow between devices so that the data can be handled at an efficient pace. Too much data arriving before a device can handle it can cause data overflow, potentially resulting in lost data. Flow control can also be applied in the context of refusing additional device connections until the flow of data has subsided.
It is desirable to enable specialized network processors to implement a wide variety of flow control techniques in the context of various network protocols.